package com.irdstudio.apicenter.frame.service;

import java.io.IOException;

import com.irdstudio.apicenter.core.dvo.RspValue;
import com.irdstudio.apicenter.frame.core.jdbc.JdbcBaseDAO;
import com.irdstudio.apicenter.frame.maker.ModuleMaker;

/**
 * 模块生成服务组件(提供针对代码模板的各种操作)
 * 
 * @author zs.ligm
 * @version 1.0
 * @date 2015-07-30
 */
public class ModuleGenerateService extends AbstractService {

	/* 代码模板服务必须的Jdbc模板类 */
	private JdbcBaseDAO jdbcBaseDAO;

	@Override
	public String getName() {
		return "ModuleGenerateService";
	}

	/**
	 * 将指定应用下指定模块的代码生成
	 * 
	 * @param appId
	 * @param moduleId
	 * @return
	 * @throws IOException 
	 */
	public RspValue generateModuleCode(String appId, String moduleId) throws IOException {

		return new ModuleMaker(this.jdbcBaseDAO, appId, moduleId).make();
	}
	
	/**
	 * 将指定应用下指定页面的代码生成
	 * 
	 * @param pageId
	 * @return
	 * @throws IOException 
	 */
	public RspValue generatePageCode(String appId, String pageId) throws IOException {
		return new ModuleMaker(this.jdbcBaseDAO, appId).createPageCode(pageId);
	}

	@Override
	public void start() {
		this.logger.info("启动模块代码生成服务...");
	}

	@Override
	public void terminate() {
		// 释放服务组件所占用的内存
	}

	public void setJdbcBaseDAO(JdbcBaseDAO jdbcBaseDAO) {
		this.jdbcBaseDAO = jdbcBaseDAO;
	}

	public JdbcBaseDAO getJdbcBaseDAO() {
		return jdbcBaseDAO;
	}

}
